package com.gph.saviorframework.mq.api.transaction;

import com.gph.saviorframework.mq.api.Admin;
import com.gph.saviorframework.mq.api.Message;
import com.gph.saviorframework.mq.api.SendResult;

/**
 * 发送分布式事务消息
 */
public interface TransactionProducer extends Admin {

    /**
     * 启动服务
     */
    void start();


    /**
     * 关闭服务
     */
    void shutdown();

    /**
     * 发送消息
     * @param message
     * @param executer 本地事务执行器
     * @param arg 应用自定义参数
     * @return
     */
    public SendResult send(final Message message, //
                           final LocalTransactionExecuter executer, //
                           final Object arg);
}